with Ada.Text_IO;              use Ada.Text_IO;
with Ada.Strings.Unbounded;    use Ada.Strings.Unbounded;

package body LibMoulinette is

   -- | takes one line coming from the database dump and gives back its company info
   function Get_Societe(Line : Unbounded_String) return Societe is
      Soc : Societe;
   begin
      return Soc;
   end Get_Societe;

   -- | takes the rest of one line coming from the database dump and gives back the next billing info
   function Get_Detail(Line : Unbounded_String) return Facture_Detail is
      Det : Facture_Detail;
   begin
      return Det;
   end Get_Detail;

   -- | takes all the biling info from a lines into a vector
   function Get_All_Details(Line : Unbounded_String) return Details_Vector.Vector is
      Dets : Details_Vector.Vector;
   begin
      return Dets;
   end Get_All_Details;

   -- | removes duplicate from a vector of societe
   function Societe_Vector_Removedups(Vect_Societe : Societe_Vector.Vector) return Societe_Vector.Vector is
      Vect : Societe_Vector.Vector;
   begin
      return Vect;
   end Societe_Vector_Removedups;

   -- | takes all the biling info and gives back a facture
   function Gen_Facture(Vect_Details : Details_Vector.Vector) return Facture is
      Fac : Facture;
   begin
      return Fac;
   end Gen_Facture;

   -- | dumps a vector of societe into a csv file
   procedure Societe_Vector_Dump(Vect_Societe : Societe_Vector.Vector) is
   begin
      Put_Line("statement");
   end Societe_Vector_Dump;

   -- | dumps a vector of biling info into a csv file
   procedure Details_Dump(Vect_Details : Details_Vector.Vector) is
   begin
      Put_Line("statement");
   end Details_Dump;

   -- | dumps a facture into a csv file
   procedure Facture_Dump(Fact : Facture) is
   begin
      Put_Line("statement");
   end Facture_Dump;

   -- | takes one database dump and create three csv files
   procedure Process_Dump( Dump_Path : String
			 ; Dest_Root : String) is
   begin
      Put_Line("statement");
   end Process_Dump;

end LibMoulinette;
